package com.heatup.apt.model.coupon;

import java.io.Serializable;
import java.util.Date;
import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotations.IdType;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import org.springframework.format.annotation.*;

/**
 *
 * 优惠券表
 *
 */
@TableName("coupon_info")
public class CouponInfo implements Serializable {

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    /**  */
    @TableId(type = IdType.AUTO)
    private Integer id;

    /** 优惠券名字 */
    @TableField(value = "coupon_name")
    private String couponName;

    /** 优惠券的子标题。 */
    @TableField(value = "coupon_text")
    private String couponText;

    /** 领取方式(1:用户输入码，2:系统随机生成) */
    @TableField(value = "get_mode")
    private Integer getMode;

    /** 券名(如果get_mode为1,则存储此字段， 为2则查询coupon_detail表) */
    @TableField(value = "coupon_code")
    private String couponCode;

    /** 最大数量（0表示不限量） */
    @TableField(value = "max_count")
    private Integer maxCount;

    /** 已领取数量 */
    @TableField(value = "geted_count")
    private Integer getedCount;

    /** 券类型（1:现金券，2:折扣券，3:檬会员资格 4:课程体验券 5：团课包月卡体验券 6：私教体验券 7：体侧服务券） */
    @TableField(value = "coupon_type")
    private Integer couponType;

    /** 现金券金额 */
    @TableField(value = "cash_money")
    private BigDecimal cashMoney;

    /** 最小的使用价格（0表示不限) */
    @TableField(value = "min_use_money")
    private BigDecimal minUseMoney;

    /** 课程体验券最大使用价格(0表示不限制) */
    @TableField(value = "max_use_money")
    private BigDecimal maxUseMoney;

    /** 限制是否一个批次一人一票(0:不限制 1:限制)课程体验券使用 */
    @TableField(value = "is_one_vote")
    private Integer isOneVote;

    /** 折扣(如果是折扣券，则此字段保存折扣） */
    private BigDecimal discount;

    /** 限制门店如果存在多个门店就用#来分割 */
    @TableField(value = "limit_store")
    private String limitStore;

    /** 是否限制课程（1:无限制，2:有限制） */
    @TableField(value = "is_limit_course")
    private Integer isLimitCourse;

    /** 限制团课（0: 不允许 1:允许） */
    @TableField(value = "limit_team_course")
    private Integer limitTeamCourse;

    /** 限制私教（0: 不允许 1:允许） */
    @TableField(value = "limit_secret_course")
    private Integer limitSecretCourse;

    /** 限制檬营（0: 不允许 1:允许） */
    @TableField(value = "limit_camp_course")
    private Integer limitCampCourse;

    /** 限制自助（0: 不允许 1:允许） */
    @TableField(value = "limit_self_course")
    private Integer limitSelfCourse;

    /** 私教体验课 */
    @TableField(value = "limit_secret_experience_course")
    private Integer limitSecretExperienceCourse;

    /** 体测课 */
    @TableField(value = "limit_physical_examination_course")
    private Integer limitPhysicalExaminationCourse;

    /** 兑换模式(1:不限制， 2:使用配置的固定兑换日期） */
    @TableField(value = "change_mode")
    private Integer changeMode;

    /** 兑换生效日期  */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @TableField(value = "change_begin_date")
    private Date changeBeginDate;

    /** 兑换失效日期  */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @TableField(value = "change_end_date")
    private Date changeEndDate;

    /** 使用模式(1:从领取之日起计算，2:使用配置的固定使用日期） */
    @TableField(value = "use_mode")
    private Integer useMode;

    /** 从领取开始时的有效天数 */
    @TableField(value = "day_num")
    private Integer dayNum;

    /** 使用生效日期 */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @TableField(value = "use_begin_date")
    private Date useBeginDate;

    /** 使用失效日期 */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @TableField(value = "use_end_date")
    private Date useEndDate;

    /** 状态（1系统录入 2已上线 3已下线 4已删除） */
    @TableField(value = "coupon_status")
    private Integer couponStatus;

    /** 验证人 */
    @TableField(value = "check_name")
    private String checkName;

    /** 验证的手机号码 */
    @TableField(value = "check_phone")
    private String checkPhone;

    /** 验证时间 */
    @TableField(value = "check_time")
    private Date checkTime;

    /** 备注 */
    private String marks;

    /**  */
    @TableField(value = "created_by")
    private String createdBy;

    /**  */
    @TableField(value = "create_time")
    private Date createTime;

    /**  */
    @TableField(value = "updated_by")
    private String updatedBy;

    /**  */
    @TableField(value = "updated_time")
    private Date updatedTime;

    /** 用于乐观锁，防止同一时间多个人操作。 */
    private Integer version;


    public Integer getId() {
        return this.id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getCouponName() {
        return this.couponName;
    }

    public void setCouponName(String couponName) {
        this.couponName = couponName;
    }

    public String getCouponText() {
        return this.couponText;
    }

    public void setCouponText(String couponText) {
        this.couponText = couponText;
    }

    public Integer getGetMode() {
        return this.getMode;
    }

    public void setGetMode(Integer getMode) {
        this.getMode = getMode;
    }

    public String getCouponCode() {
        return this.couponCode;
    }

    public void setCouponCode(String couponCode) {
        this.couponCode = couponCode;
    }

    public Integer getMaxCount() {
        return this.maxCount;
    }

    public void setMaxCount(Integer maxCount) {
        this.maxCount = maxCount;
    }

    public Integer getGetedCount() {
        return this.getedCount;
    }

    public void setGetedCount(Integer getedCount) {
        this.getedCount = getedCount;
    }

    public Integer getCouponType() {
        return this.couponType;
    }

    public void setCouponType(Integer couponType) {
        this.couponType = couponType;
    }

    public BigDecimal getCashMoney() {
        return this.cashMoney;
    }

    public void setCashMoney(BigDecimal cashMoney) {
        this.cashMoney = cashMoney;
    }

    public BigDecimal getMinUseMoney() {
        return this.minUseMoney;
    }

    public void setMinUseMoney(BigDecimal minUseMoney) {
        this.minUseMoney = minUseMoney;
    }

    public BigDecimal getMaxUseMoney() {
        return this.maxUseMoney;
    }

    public void setMaxUseMoney(BigDecimal maxUseMoney) {
        this.maxUseMoney = maxUseMoney;
    }

    public Integer getIsOneVote() {
        return this.isOneVote;
    }

    public void setIsOneVote(Integer isOneVote) {
        this.isOneVote = isOneVote;
    }

    public BigDecimal getDiscount() {
        return this.discount;
    }

    public void setDiscount(BigDecimal discount) {
        this.discount = discount;
    }

    public String getLimitStore() {
        return this.limitStore;
    }

    public void setLimitStore(String limitStore) {
        this.limitStore = limitStore;
    }

    public Integer getIsLimitCourse() {
        return this.isLimitCourse;
    }

    public void setIsLimitCourse(Integer isLimitCourse) {
        this.isLimitCourse = isLimitCourse;
    }

    public Integer getLimitTeamCourse() {
        return this.limitTeamCourse;
    }

    public void setLimitTeamCourse(Integer limitTeamCourse) {
        this.limitTeamCourse = limitTeamCourse;
    }

    public Integer getLimitSecretCourse() {
        return this.limitSecretCourse;
    }

    public void setLimitSecretCourse(Integer limitSecretCourse) {
        this.limitSecretCourse = limitSecretCourse;
    }

    public Integer getLimitCampCourse() {
        return this.limitCampCourse;
    }

    public void setLimitCampCourse(Integer limitCampCourse) {
        this.limitCampCourse = limitCampCourse;
    }

    public Integer getLimitSelfCourse() {
        return this.limitSelfCourse;
    }

    public void setLimitSelfCourse(Integer limitSelfCourse) {
        this.limitSelfCourse = limitSelfCourse;
    }

    public Integer getLimitSecretExperienceCourse() {
        return this.limitSecretExperienceCourse;
    }

    public void setLimitSecretExperienceCourse(Integer limitSecretExperienceCourse) {
        this.limitSecretExperienceCourse = limitSecretExperienceCourse;
    }

    public Integer getLimitPhysicalExaminationCourse() {
        return this.limitPhysicalExaminationCourse;
    }

    public void setLimitPhysicalExaminationCourse(Integer limitPhysicalExaminationCourse) {
        this.limitPhysicalExaminationCourse = limitPhysicalExaminationCourse;
    }

    public Integer getChangeMode() {
        return this.changeMode;
    }

    public void setChangeMode(Integer changeMode) {
        this.changeMode = changeMode;
    }

    public Date getChangeBeginDate() {
        return this.changeBeginDate;
    }

    public void setChangeBeginDate(Date changeBeginDate) {
        this.changeBeginDate = changeBeginDate;
    }

    public Date getChangeEndDate() {
        return this.changeEndDate;
    }

    public void setChangeEndDate(Date changeEndDate) {
        this.changeEndDate = changeEndDate;
    }

    public Integer getUseMode() {
        return this.useMode;
    }

    public void setUseMode(Integer useMode) {
        this.useMode = useMode;
    }

    public Integer getDayNum() {
        return this.dayNum;
    }

    public void setDayNum(Integer dayNum) {
        this.dayNum = dayNum;
    }

    public Date getUseBeginDate() {
        return this.useBeginDate;
    }

    public void setUseBeginDate(Date useBeginDate) {
        this.useBeginDate = useBeginDate;
    }

    public Date getUseEndDate() {
        return this.useEndDate;
    }

    public void setUseEndDate(Date useEndDate) {
        this.useEndDate = useEndDate;
    }

    public Integer getCouponStatus() {
        return this.couponStatus;
    }

    public void setCouponStatus(Integer couponStatus) {
        this.couponStatus = couponStatus;
    }

    public String getCheckName() {
        return this.checkName;
    }

    public void setCheckName(String checkName) {
        this.checkName = checkName;
    }

    public String getCheckPhone() {
        return this.checkPhone;
    }

    public void setCheckPhone(String checkPhone) {
        this.checkPhone = checkPhone;
    }

    public Date getCheckTime() {
        return this.checkTime;
    }

    public void setCheckTime(Date checkTime) {
        this.checkTime = checkTime;
    }

    public String getMarks() {
        return this.marks;
    }

    public void setMarks(String marks) {
        this.marks = marks;
    }

    public String getCreatedBy() {
        return this.createdBy;
    }

    public void setCreatedBy(String createdBy) {
        this.createdBy = createdBy;
    }

    public Date getCreateTime() {
        return this.createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getUpdatedBy() {
        return this.updatedBy;
    }

    public void setUpdatedBy(String updatedBy) {
        this.updatedBy = updatedBy;
    }

    public Date getUpdatedTime() {
        return this.updatedTime;
    }

    public void setUpdatedTime(Date updatedTime) {
        this.updatedTime = updatedTime;
    }

    public Integer getVersion() {
        return this.version;
    }

    public void setVersion(Integer version) {
        this.version = version;
    }

}
